package br.com.datasun.biblioteca.ui.controller;

import java.util.HashMap;

import javax.swing.JPanel;

import br.com.datasun.biblioteca.ui.CadastroAssuntosUI;
import br.com.datasun.biblioteca.ui.CadastroAutoresUI;
import br.com.datasun.biblioteca.ui.CadastroBibliotecaUI;
import br.com.datasun.biblioteca.ui.CadastroCategoriaUI;
import br.com.datasun.biblioteca.ui.CadastroClientesUI;
import br.com.datasun.biblioteca.ui.CadastroControllerUI;
import br.com.datasun.biblioteca.ui.CadastroEditorasUI;
import br.com.datasun.biblioteca.ui.CadastroLivroUI;
import br.com.datasun.biblioteca.ui.ConsultaClientesUI;
import br.com.datasun.biblioteca.ui.ConsultaLivrosUI;
import br.com.datasun.biblioteca.ui.EmprestimoExemplarUI;
import br.com.datasun.biblioteca.ui.MainUI;
import br.com.datasun.biblioteca.ui.MenuCentralUI;

public class UIController {
	private static MainUI mainUI;
	private static UIController objetoUnico;
	
	private static HashMap<TelaBiblioteca,JPanel> telasSistema = new HashMap<TelaBiblioteca,JPanel>();
	
	private UIController(){
		
	}
	
	public static UIController getInstance(MainUI mainUI){		
		if (objetoUnico.mainUI == null) {
			objetoUnico = new UIController();
			objetoUnico.mainUI = mainUI;
			carregarTelas();
		}
		
		return objetoUnico;
		
	}
	
	private static void carregarTelas(){		
		CadastroAssuntosUI cadastroAssuntosUI = new CadastroAssuntosUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_ASSUNTOS_UI, cadastroAssuntosUI);
		
		CadastroBibliotecaUI cadastroBibliotecaUI = new CadastroBibliotecaUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_BIBLIOTECA_UI, cadastroBibliotecaUI);
		
		CadastroLivroUI cadastroLivroUI = new CadastroLivroUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_LIVROS_UI, cadastroLivroUI);
		
		ConsultaLivrosUI consultaLivroUI = new ConsultaLivrosUI();
		telasSistema.put(TelaBiblioteca.CONSULTAR_LIVROS_UI , consultaLivroUI);
		
		CadastroAutoresUI cadastroAutoresUI = new CadastroAutoresUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_AUTORES_UI, cadastroAutoresUI);
		
		CadastroCategoriaUI cadastroCategoriaUI = new CadastroCategoriaUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_CATEGORIA_UI,cadastroCategoriaUI);
		
		CadastroEditorasUI cadastroEditorasUI = new CadastroEditorasUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_EDITORAS_UI, cadastroEditorasUI);
		
		MenuCentralUI menuCentralUI = new MenuCentralUI();
		telasSistema.put(TelaBiblioteca.MENU_CENTRAL_UI, menuCentralUI);
		
		CadastroClientesUI cadastroClienteUI = new CadastroClientesUI();
		telasSistema.put(TelaBiblioteca.CADASTRO_CLIENTE_UI, cadastroClienteUI);
		
		EmprestimoExemplarUI emprestimoExemplarUI = new EmprestimoExemplarUI();
		telasSistema.put(TelaBiblioteca.EMPRESTIMO_EXEMPLAR_UI,emprestimoExemplarUI);
				
	}
	
	public static void mudarTela(TelaBiblioteca telaAExibir){
		JPanel panel = telasSistema.get(telaAExibir);
		if (panel instanceof CadastroControllerUI){
			CadastroControllerUI cadastroController = (CadastroControllerUI)panel;
			cadastroController.setController(objetoUnico);
			objetoUnico.mainUI.mudarTela(cadastroController);
		}else{
			objetoUnico.mainUI.mudarTela(panel);	
		}
		
	}

}
